assume cs:codesg, ds:data, ss:stack

data segment
    dw 0000h,0001h,0002h,0003h
data end

stack segment
    dw 0,0,0,0
stack end

codesg segment
start:
    mov ax,stack
    mov ss,ax
    mov sp,16

    mov ax,data
    mov ds,ax
    
    mov bx,0
    mov cx,4
  s:
    push [bx]
    add bx,2
    loop s

    mov bx,0
    mov cx,4
  s0:
    pop [bx]
    add bx,2
    loop s0


    mov ax,4c00h
    int 21h
codesg ends

end start